﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ControllerLag;
using Model;
using Interfaces;

namespace Projekt_1
{
    public partial class FrmDelordreOpret : Form
    {
        private Controller controller;
        private Vare vareHolder;



        public FrmDelordreOpret(Controller controller, Homeparty homeparty)
        {
            InitializeComponent();
            try
            {
                this.controller = controller;
                this.txtHomepartyNr.Text = homeparty.Id.ToString();
                this.cboGæst.Items.Add(homeparty.Værtinde);
                if (homeparty.Gæsteliste.Any())
                {
                    this.cboGæst.Items.AddRange(homeparty.Gæsteliste.ToArray());
                }
            }
            catch
            {
                MessageBox.Show("Der er ikke valgt noget Homeparty");
                this.Close();
            }

        }

        private void btnLuk_Click(object sender, EventArgs e)
        {
            this.Close();
        }


        private void btnTilføjVare_Click(object sender, EventArgs e)
        {
            try
            {
                dgvKøbsliste.Rows.Add(vareHolder.VareNr, vareHolder.Navn, cbVareantal.SelectedValue, vareHolder.Pris, (vareHolder.Pris * (int)cbVareantal.SelectedValue));
            }
            catch
            {
                MessageBox.Show("Udfyld venligst alle felter");
            }
        }

        private void FrmDelordreOpret_Load(object sender, EventArgs e)
        {
            List<Vare> dummy = new List<Vare>();
            dummy = controller.HentVareliste();

            cbVaretype.Items.AddRange(dummy.ToArray()); // i stedet for foreach 

            List<Kunde> gæsteListe = new List<Kunde>();



        }

        private void cbVaretype_SelectedIndexChanged(object sender, EventArgs e)
        {
            vareHolder = (Vare)cbVaretype.SelectedItem;
        }


        private void btnGem_Click(object sender, EventArgs e)
        {
            Betalingsmetode betalingsmetode;

            if (rbkontant.Checked)
            {
                betalingsmetode = Betalingsmetode.KONTANT;
            }
            else if (rbBetalingskort.Checked)
            {
                betalingsmetode = Betalingsmetode.DANKORT;
            }
            else if (rbBanoverførsel.Checked)
            {
                betalingsmetode = Betalingsmetode.BANKOVERFØRSEL;
            }
            else
            {
                betalingsmetode = Betalingsmetode.IKKE_BETALT;
            }

            try
            {
                controller.OpretDelordre((Kunde)cboGæst.SelectedItem, cbBetalt.Checked, betalingsmetode, txtBetalingskommentar.Text);
                foreach (DataGridViewRow item in dgvKøbsliste.Rows)
                {
                    DataGridViewCell cell = item.Cells[0];
                    Vare varen = controller.FindVare((int)cell.Value);
                    cell = item.Cells[2];
                    int antal = (int)cell.Value;
                    cell = item.Cells[3];
                    double varePris = (double)cell.Value;

                    controller.OpretDelordreLinje(varen, antal, varePris);
                }
            }
            catch
            {
                MessageBox.Show("Der er en fejl i indtastningen");
            }
        }

        private void cboGæst_SelectedIndexChanged(object sender, EventArgs e)
        {
        }







    }
}
